1. Field of the Invention
The present invention, in certain respects, relates to storage media. In other respects, the present invention relates to the storage and error recovery of MPEG data on hard disk drives.
2. Description of Related Art
In existing computer systems, the hard disk drive is normally expected to take the necessary time to recover from errors that may be detected in data stored on the hard disk drive. The rationale for the hard disk drive taking the necessary recovery time is based upon the fact that data stored on the hard disk drive has typically been of a nature that cannot tolerate errors, e.g., word processing files, spread sheets, and the like.
With the introduction of audio/visual data storage in the form of compressed streams of data such as MPEG-1, MPEG-2, etc., the focus has changed from the need to correct all data errors to an importance of sustained throughout and timely delivery of data. In particular, some errors will impact only one or a few frames of a, for example, 30 frames per second signal and may be undetectable to a user. If the audio/visual stream were delayed to perfectly correct all such errors, then a break or lag would result in the audio/visual output and thereby the output would be unacceptable to the user. The MPEG decoding module may also take measures to conceal errors if errors are flagged by the storage device.
MPEG-type data streams consist of a series of frames of data. Each of these frames of data may be one of three types of frame. The first type is an intra-frame, or I-frame. I-frames are encoded in their entirety within a stream, without reference to other frames. The second type is an inter-frame predicted frame, or P-frame. A P-frame is coded with reference to the nearest previous I-frame or P-frame. Usually, a motion compensation technique is used to generate the P-frames. The third type is a bi-directional predicted/interpolated frame, or B-frame. B-frames are created by referring to the nearest past and future I- and P-frames. B-frames are never used as references for other B- or P-frames. Therefore, an error in an I-frame could propagate through a large portion of a stream because it is used as a reference for the greatest number of other frames. An error in a P-frame is also used as a reference, and thus could propagate as well. However, an error in a B-frame will be limited to a single frame.
Parts of a single frame of MPEG data may also create errors more significant than in other parts of the same frame because of limitations of the human eye and ear. For instance, the eye is more sensitive to changes in brightness than to chromaticity. Therefore, an error in a chrominance component of a frame is less likely to disrupt the output than an error in a luminance component, from a viewer standpoint. Likewise, errors in the center of an image may disturb a viewer more than errors at the periphery of the image.
Current hard disk drives for computers assign storage priority to files or objects by finding available storage locations sufficiently large to hold the file or object. When determining the storage allocations, the hard disk drive is unaware of the nature of the data it is storing, and the host is unaware of the properties of the available storage locations. There is no way to optimize the selection of a storage location by factoring in the nature of the data to be stored. In the case of audio/visual data, the selection of a storage location that is not optimized for a high bit-rate stream results in decreased allowable overhead for error recovery and thus, ultimately, discontinuity, or distortion of the audio/visual output when errors are encountered. Note that this allowable error recovery overhead budget is a function of media/disk bitrate, MPEG stream bitrate, and the available amount of data buffer in the storage device (hard drive).